Industrial controllers are special-purpose computers utilized for controlling industrial processes, manufacturing equipment, and other factory automation, such as data collection or networked systems. In accordance with a control program, the industrial controller, having an associated processor (or processors), measures one or more process variables or inputs reflecting the status of a controlled system, and changes outputs effecting control of such system. The inputs and outputs may be binary, (e.g., on or off), as well as analog inputs and outputs assuming a continuous range of values.
Measured inputs received from such systems and the outputs transmitted by the systems generally pass through one or more input/output (I/O) modules. These I/O modules serve as an electrical interface to the controller and may be located proximate or remote from the controller including remote network interfaces to associated systems. Inputs and outputs may be recorded in an I/O table in processor memory, wherein input values may be asynchronously read from one or more input modules and output values written to the I/O table for subsequent communication to the control system by specialized communications circuitry (e.g., back plane interface, communications module). Output modules may interface directly with one or more control elements, by receiving an output from the I/O table to control a device such as a motor, valve, solenoid, amplifier, and the like.
At the core of the industrial control system, is a logic processor such as a Programmable Logic Controller (PLC) or PC-based controller. Programmable Logic Controllers for instance, are programmed by systems designers to operate manufacturing processes via user-designed logic programs or user programs. The user programs are stored in memory and generally executed by the PLC in a sequential manner although instruction jumping, looping and interrupt routines, for example, are also common. Associated with the user program are a plurality of memory elements or variables that provide dynamics to PLC operations and programs. These variables can be user-defined and can be defined as bits, bytes, words, integers, floating point numbers, timers, counters and/or other data types to name but a few examples.
Industrial controllers are often employed in integrated manufacturing operations that can often involve high-complexity manufacturing processes. Such processes which are sometimes referred to as batch processes are involved in many areas of modern production. These areas include substantially any type of packaged products that are commonly found in grocery stores or other distribution outlets. For example, these products include pharmaceuticals, beauty products, soap, consumer goods, fine chemicals, beverages, candies, sugar, flour, pastries, boxed items such as cereals, frozen products, cheeses, and so forth. Often, complex factory equipment arrangements and programming are provided to produce all or portions of such products. Programming is often provided in terms of Sequential Function Blocks and Charts that relate logical/programmed production operations to equipment assets that control the operations. Thus, conventional programming processes and models are defined in terms of the equipment that produces a given product. This type of programming model, however, can be inflexible, inefficient and costly in terms of asset utilization and in terms of material controls. For example, programmers typically need to create process or logic steps for each material in a recipe. In one example, an ice cream recipe may include steps such as: ADD_CREAM, ADD_EGG, ADD_SUGAR, and ADD_MILK. It becomes even more complicated if there is more than one storage container for each material. For example, if cream is stored in five different containers, a programmer would need five control operations, five equipment allocations, and five recipes simply to get cream from the appropriate container. An operator then has to choose the recipe to run based on where the cream is stored. Thus, many permutations of recipes are required when sugar, eggs and milk are stored in different containers as well. As can be appreciated, if process changes are involved, or if some of the above ingredients need deployed in different processes, then complex manufacturing changes, programming, inventory planning, and material processing need to be re-designed and accounted for. Therefore, equipment-based programming models typically lead to less than efficient asset utilization and generally lead to increased inventory costs.